多层嵌套 if

您所在的位置:网站首页 Python多个if else 如何优化 多层嵌套 if

多层嵌套 if

2024-07-06 22:27| 来源: 网络整理| 查看: 265

相信大伙儿都见过这样的代码:

if (true) { // do something if (true) { // do something if (true) { // do something if (true) { // do something if (true) { // do something } } } } }

功能跑起来没问题,但是作为一名追求代码精简的程序员,能用一行代码完成功能绝不写三行。业务开发过程中正好也遇到这样的重构诉求,于是有了这篇重构过程复现和衍生思考博客。

结论先行,重构这类嵌套if-else的代码,我主要采取了以下三种方式:

三目运算符 方法分层 多态 2.优化思路

下面我将以实例的方式呈现这个重构过程。

重构前的业务代码是长这样的: 在这里插入图片描述 2.1.三目运算符 利用三目运算符对一些简单if-else进行优化。

就像这样:

不使用三目运算符:

if (queryParam.getCreateStartTime() != 0) { String strStartDate = DateUtils.longToFormatDate(queryParam.getCreateStartTime()); }

使用三目运算符:

String strStartDate = !(queryParam.getCreateStartTime() == 0 || queryParam.getCreateEndTime() == 0) ? DateUtils.longToFormatDate(queryParam.getCreateStartTime()) : null; 2.2.方法分层

所谓方法分层是受到设计模式里面的单一职责原则(SRP)启发,代码中很多参数需要判空。这时候抽象一个方法出来进行所有的参数合法性校验,以此达到代码简化的目的。

业务代码只进行业务逻辑编写,参数校验统一由参数校验方法完成。

就像这样:

@Override public void checkListQueryParams(ListQueryParam queryParam) { if (Objects.isNull(queryParam.getPageNo()) || Objects.isNull(queryParam.getPageSize())) { throw new


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3